const fs = require('fs');
const path = require('path');
const { PDFDocument } = require('pdf-lib');
const size = 33

// 大图片路径
const imagePath = path.join(__dirname, 'large_image.png');

// 读取图片数据
const imageBytes = fs.readFileSync(imagePath);

(async () => {
  // 创建一个PDF文档实例
  const pdfDoc = await PDFDocument.create();

  // 目标PDF文件大小
  const targetSize = size * 1024 * 1024;  // 32 MB
  let currentSize = 0;

  while (currentSize < targetSize) {
    // 添加一个新页面
    const page = pdfDoc.addPage([10000, 10000]);  // 使用图片的尺寸来创建页面

    // 将图片添加到页面中
    const jpgImage = await pdfDoc.embedPng(imageBytes);
    page.drawImage(jpgImage, {
      x: 0,
      y: 0,
      width: page.getWidth(),
      height: page.getHeight(),
    });

    // 更新文件大小
    currentSize = (await pdfDoc.save()).length;
    console.log(`当前文件大小: ${(currentSize / (1024 * 1024)).toFixed(2)} MB`);
  }

  // 保存PDF文件
  fs.writeFileSync(`${size}MB_file.pdf`, await pdfDoc.save());

  console.log(`PDF文件生成完毕，大小接近${size}MB。`);
})();
